package conf

import (
	// 可通过此链接看关于toml与对象的映射
	"github.com/BurntSushi/toml"
	"github.com/caarlos0/env/v6"
)

// 程序配置是一个全局变量，在程序启动(main.go)时，要加载配置
// 不加载配置时，就用默认的配置
var (
	// 包外可用变量C
	C *Config = DefaultConfig()
)

// 从toml文件加载配置
func LoadConfigToml(filepath string) error {
	// 把toml路径下的文件转化为Config对象
	// 所以返回的结果就是一个新的Config对象,覆盖旧的Config对象
	_, err := toml.DecodeFile(filepath, C)
	if err != nil {
		return err
	}
	return nil
}

// 从环境变量加载配置
// 要设置环境变量：设置--工作区--搜索 test env
// "go.testEnvFile": "${workspaceFolder}/vblog-01/vblog/etc/unit_test.env"
func LoadConfigEnv() error {
	// 实现环境变量和Config对象的映射
	return env.Parse(C)
}
